package org.fujay.langchain4jserver.application.command;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import org.fujay.langchain4jserver.domain.knowledge.vo.KnowledgeBaseId;
import org.fujay.langchain4jserver.domain.model.vo.ModelId;

/**
 * 创建应用命令
 */
@Data
@Builder
public class CreateApplicationCommand {

    /**
     * 应用名称 (必填)
     */
    @NotBlank(message = "应用名称不能为空")
    private String appName;

    /**
     * 应用描述
     */
    private String appDesc;

    /**
     * 模型ID (必填)
     */
    @NotNull(message = "必须指定模型ID")
    private ModelId modelId;

    /**
     * 是否使用知识库
     */
    private Boolean useKnowledgeBase;

    /**
     * 知识库ID (如果 useKnowledgeBase 为 true 则必填)
     */
    private KnowledgeBaseId knowledgeBaseId;
}
